home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Apple II Magazines (DO)
/
Softdisk Magazette Volume 2, No. 02 (1982-10)(Softdisk)(Side B).zip
/
Softdisk Magazette Volume 2, No. 02 (1982-10)(Softdisk)(Side B).do
/
MORSE CODE.bas
< prev
next >
Wrap
BASIC Source File
|
1996-12-24
|
3KB
|
80 lines
10 POKE 16346,165: POKE 16347,0: POKE 16348,240: POKE 16349,3: POKE 16350,173: POKE 16351,48: POKE 16352,192: POKE 16353,136: POKE 16354,208
20 POKE 16355,4: POKE 16356,198: POKE 16357,1: POKE 16358,240: POKE 16359,8: POKE 16360,202: POKE 16361,208: POKE 16362,246: POKE 16363,166
30 POKE 16364,0: POKE 16365,76: POKE 16366,218: POKE 16367,63: POKE 16368,96
40 CLEAR
50 DIM A$(48),CR$(48),CH$(48),AA$(48)
60 D = 1:F = 0:F1 = 72:F0 = 0:TN = 16346
70 HOME : PRINT TAB( 14)"CODE TEACHER": PRINT
80 INPUT "ENTER CODE SPEED (5 THROUGH 35 IN STEPS OF 5)>";CS
90 IF CS = 0 GOTO 180
100 IF CS = 5 THEN D0 = 85
110 IF CS = 10 THEN D0 = 42
120 IF CS = 15 THEN D0 = 25
130 IF CS = 20 THEN D0 = 17
140 IF CS = 25 THEN D0 = 13
150 IF CS = 30 THEN D0 = 10
160 IF CS = 35 THEN D0 = 8
170 GOTO 190
180 VTAB 3: CALL -958: INPUT "ENTER SPEED VALUE (1 TO 85 )>";D0
190 D1 = D0 *3: REM ;DAH LENGTH
200 INPUT "ENTER # OF ELEMENTS/CHARACTER SPACE >";D2
210 INPUT "ENTER # OF TIMES TO REPEAT EACH LETTER ";RP
220 FOR X = 1 TO 48: READ CR$(X): NEXT
230 FOR X = 1 TO 48: READ A$(X): NEXT
240 PRINT "DO YOU WANT TO :"
250 PRINT "(1)INPUT THROUGH KEYBOARD"
260 PRINT "(2) ENTER PROBLEM CHARACTERS"
270 INPUT "(3) RECEIVE RADOM CHARACTERS";KB
280 ON KB GOTO 620,510,290
290 PRINT "DO YOU WANT :"
300 PRINT "(1) LETTERS"
310 PRINT "(2) LETTERS & NUMBERS"
320 INPUT "(3) LETTERS, NUMBERS & PUNTUATION ";CR: HOME
330 IF CR = 1 THEN CR = 26
340 IF CR = 2 THEN CR = 36
350 IF CR = 3 THEN CR = 48
360 B = INT(CR * RND(1)) +1
370 GOSUB 390: IF PEEK( -16384) >127 THEN POKE -16368,0: GOTO 40
380 POKE -16368,0: GOTO 360
390 FOR Y = 1 TO RP
400 FOR X = 1 TO LEN(A$(B))
410 F1 = PDL(0): POKE F,F1: REM SET TONE
420 IF MID$ (A$(B),X,1) = "1" THEN POKE D,D1: CALL TN: GOTO 440: REM SEND A DAH
430 POKE D,D0: CALL TN: REM ;SEND A DIT
440 POKE F,F0: POKE D,D0: CALL TN: REM ;ELEMENT SPACE
450 NEXT
460 FOR W = 1 TO D2 -1: REM CHARACTER SPACE LOOP
470 POKE D,D0: CALL TN
480 NEXT
490 PRINT CR$(B);" ";
500 NEXT : RETURN
510 C = 0:C1 = 0: HOME
520 PRINT : INPUT "ENTER PROBLEM CHARACTERS>";P$
530 CR = LEN(P$)
540 C = C +1:C1 = C1 +1: IF C >CR THEN 600
550 P1$ = MID$ (P$,C,1)
560 FOR B = 1 TO 48
570 IF P1$ = CR$(B) THEN CH$(C1) = P1$:AA$(C1) = A$(B): GOTO 540
580 NEXT : PRINT : PRINT P1$;" IS NOT A VALID CHARACTER"
590 C1 = C1 -1: GOTO 540
600 CR = C1 -1: FOR B = 1 TO CR
610 CR$(B) = CH$(B):A$(B) = AA$(B): NEXT : GOTO 360
620 GET AA$: IF AA$ = CHR$(13) THEN GOTO 40
630 FOR B = 1 TO 48
640 IF AA$ = CR$(B) THEN GOSUB 390: GOTO 620
650 NEXT : GOTO 620
660 DATA A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z
670 DATA 1,2,3,4,5,6,7,8,9,0
680 DATA .,",",?,-,":",;,(,/,WAIT,AR,SK,ERROR
690 DATA 01,1000,1010,100,0,0010,110,0000,00,0111,101,0100
700 DATA 11,10,111,0110,1101,010,000,1,001,0001,011,1001,1011,1100
710 DATA 01111,00111,00011,00001,00000,10000,11000,11100,11110,11111
720 DATA 010101,110011,001100,10001,111000,101010,101101,10010,01000,01010,000101,00000000
990 REM ;CALIBRATE ROUTINE
1000 HOME
1010 X = 0
1020 POKE F,F1: POKE D,D0: CALL TN: REM ;SEND DIT
1030 POKE F,F0, POKE D,D0: CALL TN: REM ;ELEMENT SPACE
1040 X = X +1: PRINT X;
1050 GOTO 1020
1060 REM ;CODE SPEED IN WORDS PER MINUTE=DOTS PER MIN / 25